package com.firebird.app.kotlin.stock.trend.utils

import android.util.Log

/**
 * 带开关的日志类
 * @author ljk
 * @date   2019年11月13日
 */
object Log {
    const val VERBOSE = Log.VERBOSE
    const val DEBUG = Log.DEBUG
    const val INFO = Log.INFO
    const val WARN = Log.WARN
    const val ERROR = Log.ERROR
    //默认日志基本为error
    private var LEVEL = ERROR

    /**
     * 设置全局日志输出级别
     * @param level
     */
    fun setLevel(level: Int) {
        LEVEL = level
    }

    /**
     * 指定基本的日志是否会被输出
     * @param level
     * @return
     */
    fun isLogable(level: Int): Boolean {
        return level >= LEVEL
    }

    /**
     * Verbose log message
     * @param tag
     * @param msg
     */
    fun v(tag: String?, msg: String?) {
        if (VERBOSE >= LEVEL) {
            Log.v(tag, msg)
        }
    }

    /**
     * Debug log message
     * @param tag
     * @param msg
     */
    fun d(tag: String?, msg: String?) {
        if (DEBUG >= LEVEL) {
            Log.d(tag, msg)
        }
    }

    /**
     * Info log message
     * @param tag
     * @param msg
     */
    fun i(tag: String?, msg: String?) {
        if (INFO >= LEVEL) {
            Log.i(tag, msg)
        }
    }

    /**
     * WARN log message
     * @param tag
     * @param msg
     */
    fun w(tag: String?, msg: String?) {
        if (WARN >= LEVEL) {
            Log.w(tag, msg)
        }
    }

    /**
     * WARN log message
     * @param tag
     * @param msg
     */
    fun e(tag: String?, msg: String?) {
        if (ERROR >= LEVEL) {
            Log.e(tag, msg)
        }
    }
}
